Bingo, Computer Graphics & Game Developer

带有方向的刚体

1.要检测圆形与多边形的碰撞 其实可以分解为圆与多边形上最近点的向量与面法线方向是否一致的问题

再继续分解下去求解最近点 就能够发现只需要一个多边形的面和一个圆心即可 在这个多边形面上 这个线段可以被分为三个区域

如图所示

  • 在Face Region中 圆心到多边形最近的点就在Face Region上 且与圆心的连线垂直于这条边
  • 在Edge Region内 那么最近点就是线段边缘点本身

  • 确定圆心在哪个区域内 可以让圆心与线段本身进行点积
  • 可以通过想象出一个三角形来完成这样的一个任务

  • 在这里 若是圆心位置为Edge Region那么圆心与线段端点的夹角theta一定大于90度 或者小于90度(对应的变化要看线段的向量方向走向规定)